import { PluginOption } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import { XTailVue3AutoImports, XTailVue3TypeAutoImports } from '@xtail/unplugin-vue3'
import { XTailVue3NAutoImports, XTailVue3NTypeAutoImports } from '@xtail/unplugin-vue3-n'

/**
 * 创建自动引入 API Vite 插件
 *
 * @returns {PluginOption} 自动引入 API Vite 插件
 */
export const createAutoImport = (): PluginOption => {
  return AutoImport({
    dts: 'types/auto-imports.d.ts',
    imports: [
      'vue',
      'vue-router',
      'pinia',
      {
        'naive-ui': ['useDialog', 'useMessage', 'useNotification', 'useLoadingBar'],
      },
      XTailVue3AutoImports(),
      XTailVue3TypeAutoImports(),
      XTailVue3NAutoImports(),
      XTailVue3NTypeAutoImports(),
    ],
    dirs: ['src/router', 'src/utils'],
  })
}
